Packet-switched networks are responsible for forwarding packet-based traffic. In some hardware devices, such as switches and routers, packets are broken into fixed-length cells and forwarded from an ingress module, across a switching fabric, to an egress module, where the cells are typically reassembled into packets. After reassembly, the packets are typically enqueued in packet queues for transmission to a destination that is dependent upon the information in the packet headers.
Packets are either unicast (UC) or multicast (MC). A MC packet has multiple destinations. Typically, a MC packet is enqueued one time for each destination. Enqueuing a MC packet one time for each destination uses up memory resources. Moreover, writing packets to memory one time per destination consumes write memory bandwidth resources.
In view of the desire to enqueue MC packets for transmission, what is needed is a packet queuing system that uses memory and processing resources efficiently.